package org.dei.perla.sys.device.channel.frame.address;

/**
 * Questa classe rappresenta un indirizzo generico.
 *
 */
public abstract class FrameAddress {

	/**
	 * Un indirizzo generico
	 */
	protected Object pAddress;
		
	/**
	 * Costruttore, inizializza un indirizzo vuoto
	 *
	 */
	public FrameAddress() {
		this.pAddress = null;
	}
	
	/**
	 * Costruttore, inizializza un indirizzo
	 * @param parAddress
	 */
	public FrameAddress(Object parAddress) {
		this.pAddress = parAddress;
	}
	
	/**
	 * Inizializza un indirizzo da una stringa
	 * @param parAddress
	 */
	abstract public void setAddressFromString(String parAddress);
	
	/**
	 * Restituisce l'indirizzo
	 * @return
	 */
	public Object getAddress() {
		return this.pAddress;
	}

	/**
	 * Imposta l'indirizzo
	 * @param parAddress
	 */
	public void setAddress(Object parAddress) {
		this.pAddress = parAddress;
	}
	
	/**
	 * Verifica se l'indirizzo corrisponde all'indirizzo fornito come parametro
	 * @param parFrameAddress L'indirizzo da confrontare
	 * @return Restituisce true se gli indirizzi sono identici, false altrimenti.
	 */
	public abstract boolean equals(FrameAddress parFrameAddress);
	
	/**
	 * Restituisce una rappresentazione testuale dell'oggetto
	 */
	public abstract String toString();
	
	
}
